package leetcode;

/**
 * description:
 * author:zt
 * date:2024-09-05
 */

import java.util.HashSet;

/**
 * 国际摩尔斯密码定义一种标准编码方式，将每个字母对应于一个由一系列点和短线组成的字符串， 比如:
 *
 * 'a' 对应 ".-" ，
 * 'b' 对应 "-..." ，
 * 'c' 对应 "-.-." ，以此类推。
 *
 * 为了方便，所有 26 个英文字母的摩尔斯密码表如下：
 *
 * [".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."]
 * 对 words 中所有单词进行单词翻译，返回不同 单词翻译 的数量。
 * 对 words 中所有单词进行单词翻译，返回不同 单词翻译 的数量。
 */
public class leetcode804 {

    final String[] text = new String[]{".-","-...","-.-.","-..",".","..-.","--.","....","..",".---","-.-",".-..","--","-.","---",".--.","--.-",".-.","...","-","..-","...-",".--","-..-","-.--","--.."};

    public int uniqueMorseRepresentations(String[] words) {
        HashSet<String> res = new HashSet<>();
        for (int i = 0; i < words.length; i++) {
            String word = words[i];
            StringBuilder singleRes = new StringBuilder();
            for (int j = 0; j < word.length(); j++) {
                singleRes.append(text[word.charAt(j) - 'a']);
            }
            res.add(singleRes.toString());
        }
        return res.size();
    }
}
